package com.bawei.newsapplication.viewmodel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.bawei.coom.model.bean.fomm.FrontPageListBean
import com.bawei.coom.model.bean.gomm.PageSearchBean
import com.bawei.coom.model.bean.bomm.BannerBean
import com.bawei.coom.model.bean.fomm.NewsListBean
import com.bawei.newsapplication.model.http.HttpUtils
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
/**
 * @author : 谢庆平
 * @date   : 2024/10/15 16:59
 * @desc   :
以下是对热点新闻所包含的 “首页”“热点视频”“全民拍”“问答”“我的（登录和微信登录）” 各板块的介绍：
 * 首页：
 * 内容呈现：这是热点新闻平台的门面和核心展示区域。通常会将最重要、最热门、
 * 最具时效性的新闻资讯以多种形式呈现出来，比如头条新闻会以大标题、醒目的图片等方式突出展示，
 * 方便用户第一时间获取关键信息。新闻的来源广泛，包括专业的新闻媒体机构、记者采写的报道，
 * 以及一些经过筛选的自媒体或其他渠道的优质内容。
 * 功能特点：具备综合性和导航性。一方面，它整合了各种类型的热点新闻，如政治、经济、社会、文化、科技、体育等领域
 * 的重大事件和突发新闻，满足不同用户的信息需求；另一方面，首页还会设置分类导航、热门话题标签等，
 * 方便用户快速找到自己感兴趣的新闻类别或特定主题的新闻报道。
 * 热点视频：
 * 内容来源：该板块主要汇聚了与热点新闻相关的视频内容。
 * 这些视频的来源包括新闻媒体机构制作的新闻视频报道、现场目击者拍摄的视频素材、
 * 专业视频创作者根据热点新闻事件创作的解读或评论视频等。比如一些重大事件的现场视频、
 * 新闻发布会的视频记录、专家对热点事件的分析视频等。
 * 呈现形式：以视频的形式生动、直观地展现新闻内容，
 * 相比文字和图片更具感染力和冲击力。视频的时长不一，既有简短的新闻快讯视频，
 * 也有较为深入的专题视频报道。用户可以通过播放、暂停、快进、快退等操作来观看视频，
 * 还可以在视频下方查看相关的文字介绍、评论和点赞等信息。
 * 全民拍：
 * 平台性质：是一个鼓励广大民众参与新闻素材提供和新闻事件分享的互动平台。普通民众可以使用手机或其他摄影设备，拍摄身边发生的新闻事件、社会现象、有趣的场景等，并通过该平台上传分享。
 * 作用意义：一方面，它为新闻媒体提供了丰富的新闻素材来源，拓宽了新闻的采集渠道，使新闻更加贴近生活、贴近群众；另一方面，也为民众提供了一个表达自己观点、参与新闻传播的机会，增强了民众的新闻参与感和社会责任感。
 * 问答：
 * 问题类型：这里集中了用户关于热点新闻的各种疑问和探讨。
 * 问题可能涉及对新闻事件的背景、原因、影响的询问，对新闻中涉及的专业知识或法律问题的求解，
 * 对不同观点的争论等。例如，对于一些复杂的国际局势热点新闻，用户可能会问
 * “某地区冲突的根源是什么”“该事件对全球经济会产生怎样的影响” 等问题。
 * 互动模式：用户可以提出问题，也可以回答其他用户的问题。
 * 这种互动模式促进了用户之间的交流和思想碰撞，有助于更深入地理解热点新闻事件。
 * 同时，一些专业的新闻工作者、专家学者或相关领域的从业者也可能会参与到问答中，提供专业的解答和分析，提高问答的质量和权威性。
 * 我的（登录和微信登录）：
 * 登录功能：用户可以通过账号密码登录或微信登录的方式进入
 * “我的” 页面。登录后，系统可以记录用户的个人信息、浏览历史、收藏、点赞、评论等数据，方便用户随时查看和管理自己在热点新闻平台上的活动记录。
 * 个性化设置：在该页面中，用户可以根据自己的兴趣和需求进行个性化设置，比如设置新闻推送的频率、类型、时间段等，
 * 以便获取更符合自己需求的热点新闻资讯。此外，用户还可以修改个人资料、绑定或解绑第三方账号等。

 */
class HomeViewModel : ViewModel() {
    //TODO 置顶数据
    var newsListData=MutableLiveData<NewsListBean>()
    //TODO 网络获取置顶数据信息
    fun getNewsList(columnId:Int,page:Int,size:Int){
        HttpUtils.http.apiServer.getNewsList(columnId, page, size)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                   newsListData.value=it
            },{})
    }
    //TODO 置顶数据
    var frontPageListData=MutableLiveData<FrontPageListBean>()
    //TODO 网络获取置顶数据信息
    fun getFrontPageList(userId:String,page:Int,size:Int){
        HttpUtils.http.apiServer.getFrontPageList(userId, page, size)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                frontPageListData.value=it
            },{})
    }
    //TODO 轮播图
    var bannerData=MutableLiveData<BannerBean>()
    //TODO 获取网络数据
    fun getBanner(){
        HttpUtils.http.apiServer.getBanner()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                bannerData.value=it
            },{})
    }
    //TODO 搜索框数据
    var pageSearchData=MutableLiveData<PageSearchBean>()
    fun getPageSearch(keyword:String,page:Int,siz:Int){
        HttpUtils.http.apiServer.getPageSearch(keyword, page, siz)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                pageSearchData.value=it
            },{})
    }

}